Systems and methods for streaming media menu templates

ABSTRACT

A method of providing a menu for accessing media assets may include defining an media asset menu, defining an media asset menu item, the menu item including visibility criteria, adding the menu item to the defined menu, storing the defined menu, and distributing the stored menu to client devices over a network. A method of providing a menu for accessing media assets may include defining a new a menu for accessing media assets, loading a menu template from storage, the loaded menu template comprising a plurality of menu items, for each menu item among the plurality of menu items, determining if visibility criteria specified for the menu item are met, upon determining that the visibility criteria specified for the menu item are met, adding the menu item to the menu, otherwise excluding the menu item from the menu, and displaying the menu.

TECHNICAL FIELD

Various embodiments of the present disclosure relate generally toretrieval and presentation of electronic media assets and, moreparticularly, to providing specialized menus for accessing electronicmedia assets.

BACKGROUND

Services providing online streaming electronic media such as, forexample, video or audio, may provide a large number of electronic mediaassets across a large number of categories. Such media assets may beprovided through an app provided on a mobile device, tablet, smarttelevision, etc., through a website or other online portal, or though adedicated software program running on a personal computer. In order toallow users to navigate through the available assets, streaming mediaservices commonly provide a menu structure that may be based on categorygrouping and special features such as settings. Such a menu may beprovided as part of the app or other software that delivers the mediaassets to the user. However, streaming media services may wish to updatethe menu structure dynamically, i.e., without releasing a new version ofthe software, to, for example, promote content, adjust to seasons(Christmas, Halloween, Super bowl, etc.), or to adjust to assetavailability, etc. A streaming media menu definition may be complex inorder to adapt dynamically to, for example, user types (registered,anonymous, etc.), network type (network provider, Wi-Fi, mobile phone,etc.), and the type of device (consumer electronic set top box, tablet,mobile phone, etc.). Thus, a streaming media menu definition may be tocomplex to be maintained and updated by non-software engineering staffoperating the product, and may require an updated software release inorder to support updated menu features

Materializing a menu may involve calls to an external service, such as avideo content grouping service to fill out generated menu items. Asoftware application for presenting streaming media assets may also makesubsequent calls to a video content grouping to get the images and textneeded to materialize the menu. If these services are down orinaccessible, materialize the menu may not be materialized properly.

The menu is important to the user experience. If it cannot bematerialized due to subsystem failures, the user will not be able tofind and play content. This may be especially important during liveevents such as football and soccer games or music concerts. In thesecases, many users arrive around the same time and may bring downcommunication services. If the menu is not available at the beginning ofan event users may find an alternative source to access a streamingmedia asset. This may lead to loss of customer engagement and loss ofrevenue for the provider.

Accordingly, there is a need for systems and methods to provide dynamicupdates of streaming media asset menus and for providing menus that canadapt to subsystem failures or loss of communications. The presentdisclosure is directed to overcoming one or more of theseabove-referenced challenges.

SUMMARY OF THE DISCLOSURE

According to certain aspects of the disclosure, systems and methods aredisclosed for providing a menu for accessing online streaming media.

In one embodiment, a computer-implemented method is disclosed forproviding a menu for accessing online streaming media. The methodincludes: defining an online streaming media asset menu, defining anonline streaming media asset menu item, the menu item includingvisibility criteria, adding the menu item to the defined menu, storingthe defined menu, and distributing the stored menu to client devicesover a network.

In one embodiment, a computer-implemented method is disclosed forproviding a menu for accessing online streaming media. The methodincludes: defining a new a menu for accessing online streaming media,loading a menu template from storage, the loaded menu templatecomprising a plurality of menu items, for each menu item among theplurality of menu items, determining if visibility criteria specifiedfor the menu item are met, upon determining that the visibility criteriaspecified for the menu item are met, adding the menu item to the menu,upon determining that the visibility criteria specified for the menuitem are not met, excluding the menu item from the menu, and displayingthe menu.

In accordance with another embodiment, a system is disclosed forproviding a menu for accessing online streaming media. The systemcomprises: a memory having processor-readable instructions storedtherein; and a processor configured to access the memory and execute theprocessor-readable instructions, which when executed by the processorconfigures the processor to perform a plurality of functions, includingfunctions to: define a new a menu for accessing online streaming media,load a menu template from storage, the loaded menu template comprising aplurality of menu items, for each menu item among the plurality of menuitems, determine if visibility criteria specified for the menu item aremet, upon determining that the visibility criteria specified for themenu item are met, add the menu item to the menu, upon determining thatthe visibility criteria specified for the menu item are not met, excludethe menu item from the menu, and display the menu.

Additional objects and advantages of the disclosed embodiments will beset forth in part in the description that follows, and in part will beapparent from the description, or may be learned by practice of thedisclosed embodiments. The objects and advantages of the disclosedembodiments will be realized and attained by means of the elements andcombinations particularly pointed out in the appended claims.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the disclosed embodiments, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate various exemplary embodiments andtogether with the description, serve to explain the principles of thedisclosed embodiments.

FIG. 1 depicts an exemplary system infrastructure for retrieving anddisplaying electronic media assets, according to one or moreembodiments.

FIGS. 2A-2B depict exemplary user interfaces for retrieving anddisplaying electronic media assets, according to one or moreembodiments.

FIG. 3 depicts a flowchart of a method of providing a menu for accessingonline streaming media, according to one or more embodiments.

FIG. 4 depicts an exemplary menu definition for accessing onlinestreaming media, according to one or more embodiments.

FIG. 5 depicts a flowchart of a method of providing a menu for accessingonline streaming media, according to one or more embodiments.

FIG. 6 depicts a flowchart of a method of providing a menu for accessingonline streaming media, according to one or more embodiments.

FIGS. 7A-7B depict exemplary user interfaces for retrieving anddisplaying electronic media assets, according to one or moreembodiments.

FIG. 8 depicts an exemplary device in which one or more embodiments maybe implemented

DETAILED DESCRIPTION OF EMBODIMENTS

Various embodiments of the present disclosure relate generally toretrieval and presentation of electronic media assets and to providingspecialized menus for accessing electronic media assets.

A menu for navigating among streaming electronic media assets may beupdated to respond to promoted assets, changes in available assets, orchanges to communications availability. For example, a provider may wishto promote a particular product, such as an NBA stream pass. If menudefinitions are tightly coupled with the provider's software, such as aweb-based platform or a mobile app, a menu update to include thepromotion would require the release of a new version of the software,which may require user action for deployment. However, if the menudefinition is updated by non-technical operators without a new softwarerelease, then menu changes may add this item to the menu without theneed for user action.

In addition, some menu information may require additional downloads fromexternal servers for a full display. However, if the required servers ornetwork communications in general are unavailable then it may not bepossible to display the defined menu. Alternatively, if default menusthat require fewer or no downloaded resources are defined within theprovider's software then the user may still be able to access and viewmedia assets.

The description below relates to systems and methods that may providesolutions for these challenges.

The terminology used below may be interpreted in its broadest reasonablemanner, even though it is being used in conjunction with a detaileddescription of certain specific examples of the present disclosure.Indeed, certain terms may even be emphasized below; however, anyterminology intended to be interpreted in any restricted manner will beovertly and specifically defined as such in this Detailed Descriptionsection.

Any suitable system infrastructure may be put into place to allow forsearching and presentation of electronic media assets. FIG. 1 and thefollowing discussion provide a brief, general description of a suitablecomputing environment in which the present disclosure may beimplemented. In one embodiment, any of the disclosed systems, methods,and/or graphical user interfaces may be executed by or implemented by acomputing system consistent with or similar to that depicted in FIG. 1.Although not required, aspects of the present disclosure are describedin the context of computer-executable instructions, such as routinesexecuted by a data processing device, e.g., a server computer, wirelessdevice, and/or personal computer. Those skilled in the relevant art willappreciate that aspects of the present disclosure can be practiced withother communications, data processing, or computer systemconfigurations, including: Internet appliances, hand-held devices(including personal digital assistants (“PDAs”)), wearable computers,all manner of cellular or mobile phones (including Voice over IP(“VoIP”) phones), dumb terminals, media players, gaming devices, virtualreality devices, multi-processor systems, microprocessor-based orprogrammable consumer electronics, set-top boxes, network PCs,mini-computers, mainframe computers, and the like. Indeed, the terms“computer,” “server,” and the like, are generally used interchangeablyherein, and refer to any of the above devices and systems, as well asany data processor.

Aspects of the present disclosure may be embodied in a special purposecomputer and/or data processor that is specifically programmed,configured, and/or constructed to perform one or more of thecomputer-executable instructions explained in detail herein. Whileaspects of the present disclosure, such as certain functions, aredescribed as being performed exclusively on a single device, the presentdisclosure may also be practiced in distributed environments wherefunctions or modules are shared among disparate processing devices,which are linked through a communications network, such as a Local AreaNetwork (“LAN”), Wide Area Network (“WAN”), and/or the Internet.Similarly, techniques presented herein as involving multiple devices maybe implemented in a single device. In a distributed computingenvironment, program modules may be located in both local and/or remotememory storage devices.

Aspects of the present disclosure may be stored and/or distributed onnon-transitory computer-readable media, including magnetically oroptically readable computer discs, hard-wired or preprogrammed chips(e.g., EEPROM semiconductor chips), nanotechnology memory, biologicalmemory, or other data storage media. Alternatively, computer implementedinstructions, data structures, screen displays, and other data underaspects of the present disclosure may be distributed over the Internetand/or over other networks (including wireless networks), on apropagated signal on a propagation medium (e.g., an electromagneticwave(s), a sound wave, etc.) over a period of time, and/or they may beprovided on any analog or digital network (packet switched, circuitswitched, or other scheme).

As shown in FIG. 1, a consumer of electronic media assets, such asconsumer 101, may employ an infrastructure 100 for retrieving anddisplaying electronic media assets in order to retrieve desiredelectronic media assets. Consumer 101 may interact with a client device110 for retrieval of electronic media assets, such as a personalcomputer or laptop 112, a tablet 114, or a smart phone or mobile device116. However, the device for retrieval of electronic media assets is notlimited to these devices and may include, for example, a streamingdigital media player, a gaming console, a set top box, a special purposedevice, or any other device capable of receiving and playing electronicmedia assets. A device used to receive and play electronic media assetsmay display the electronic media assets and other user interfaceinformation on a built-in display device or on a suitable externaldisplay device, such as television or external video monitor. ClientDevice 110 may retrieve electronic media assets and information relatedto the electronic media assets from a content provider 142 and/or acontent server 144 over a network 130. Network 130 may be a wide areanetwork, such as the Internet, a local area network, or a cloud-basednetwork, for example. Client device 110 may connect to network 130 byway of a local wireless network 124, such as, for example, a Wi-Finetwork, a cellular data network 122, or a hard-wired network connection126. In addition, client device 110 may retrieve information related toelectronic media assets, such as menus, thumbnails, preview clips, text,etc., from a server, such as a menu server 146 over a computer networkconnection. The computer network connection may be the same or differentfrom the network connection by which electronic media assets arereceived. Content provider 142, content server 144 and menu server 146may be administered and maintained by an operator 150 who may, amongother things, update and maintain menu definitions for accessingelectronic media assets.

Consumer 101 may search for desired electronic media assets using theinfrastructure for retrieving and displaying electronic media assets.For example, consumer 101 may interact with client device 110 tonavigate through menus of available assets in order to find a desiredelectronic media asset. FIGS. 2A and 2B depict exemplary menus foraccessing electronic media assets, according to one or more embodiments.

As shown in FIG. 2A, a user interface 200 for providing electronic mediaassets may include a menu section 201 and a content preview section 240.Within menu section 201 may be a plurality of selectable menu items. Forexample, the selectable menu items may include an item 205 to performuser account operations such as, for example, log in to an account orsign up for a new account, an item 210 to return to a top level or“home” section of a menu, an item 215, to access specially promotedassets or assets with common attributes such as, for example, livestreamed media assets, an item 220 to access additional information, oneor more items 225 to access assets associated with categories, such as,for example, comedies, dramas, sports, etc., and items 230 to accessinformation and preferences relating to the provider's softwareplatform, such as help information or application settings. Userinterface 200 may further include a control 235, such as, for example, a“thumb” or slider, to display or hide menu section 201 in order todisplay more or less of content preview section 240.

As shown in FIG. 2B, control 235 may be employed to hide menu section201 in order to fully display content preview section 240. In thisexemplary menu, personalized content for a registered user may bedisplayed. For example, an indicator may be displayed if there is newcontent in a category or series selected by the user. Such an indicatormay be additional text or graphics displayed in the user interface suchas, for example, an additional graphic 255 displayed adjacent to thecontrol 235 as shown in FIG. 2A. Alternatively, such an indication maybe provided by adding or altering a color or other display property of aportion of the user interface. For example, control 235 may be displayedas white or grey if no new content is available but in a color, such asgreen, if new content is available. Alternatively, or in addition,control 235 may be made to blink or move if new content is available.The user may select a category or series to be indicated for new contentby, for example, adding the category or series to a “favorites” list orby editing properties associated with the category or series. Otherpersonalized content for a registered user may include a list of contentthat was recently watched or for which viewing may be resumed, such asthe “Continue Watching” portion 260 of content preview section 240depicted in FIG. 2B. In addition, personalized content for a registereduser may include a list of content items that are recommended to theuser, such as the “You Might Like” portion 265 of content previewsection 240 depicted in FIG. 2B. Such recommended items may be based,for example, on user demographics, user viewing history, userpreferences, personal recommendations made by other users for theregistered user of for users that are deemed to be similar to theregistered user, viewing history and content ratings provided by usersdetermined to be similar to the registered user in demographics orviewing history, etc.

A menu, such as menu 201 depicted in FIG. 2A, may be distributed with aprovider's software platform for accessing electronic media assets. Insome circumstances, a provider may wish to provide an update or amodification to a menu without providing an entire new release of thesoftware platform. However, doing so may involve personnel of theprovider, such as operator 150 depicted in FIG. 1, preparing a modifiedmenu definition to be distributed separately from the provider'ssoftware platform. Operator 150 may be in a non-technical role for theprovider, such as personnel other than a software developer, forexample. As such, operator 150 may lack technical expertise to modify amenu provided as part of the provider's software platform. To allowoperator 150 to provide a modified menu definition, there is a need fora method of specifying a menu definition that is separate from theprovider's software platform and that may be performed by non-technicalpersonnel. FIG. 3 depicts a flowchart of a method of providing a menufor accessing online streaming media, according to one or moreembodiments.

As shown in FIG. 3, at operation 310, an operator, such as operator 150depicted in FIG. 1, may, by way of a server, such as menu server 146depicted in FIG. 1, define a new menu for accessing online streamingmedia. At operation 320, the operator may, by way of the server, definea new menu item for accessing online streaming media. The menu item mayhave one or more attributes, such as, for example, an item type as oneof a direct item or a generated item as well as an item name for adirect item or a collection name for a generated item. Attributes mayfurther include a page type, which may be one of, for example, a Log in,Signup, or User Profile type, a Rail List type, a Web View type, aFavorites type, a Live Event type, a Help, a Settings type, and a Logout type, etc. A Web View type may further include a uniform resourcelocator (URL). Attributes may further include a badge, which may be oneof, for example, a counter, a new item, a promoted item, an item to bedeleted soon, a live item, a start time/date, and a separator, etc.Attributes may further include visibility criteria, which may be one of,for example, a carrier, a user type, such as “Anonymous” or“Registered,” etc., a device type, such as, for example, “Mobile,” “PC,”“Tablet,” and “Set Top Box,” etc. Other attribute types, each havingadditional attribute values may be provided based on the needs andcapabilities of the provider. At operation 330, the operator may, by wayof the server, add the menu item to the menu definition. At operation340, the operator may, by way of the server, store the new menu. Atoperation 350, the operator may, by way of the server, distribute thenew menu to client devices over a network.

FIG. 4 depicts an exemplary menu definition 400 for accessing onlinestreaming media, according to one or more embodiments. As shown in FIG.4, the menu definition may be stored in JavaScript Object Notation(JSON). However, any suitable data interchange format may be used suchas, for example, Extensible Markup Language (XML), Hypertext MarkupLanguage (HTML), comma separated values (CSV), Google Protocol Buffers,length encoded buffers, etc. Such data interchange formats may beprovided as flat text files that may be edited directly by non-technicalpersonnel, such as operator 150 depicted in FIG. 1.

Once a menu definition in a suitable data interchange format has beentransmitted to a client device, such as client device 110 depicted inFIG. 1, the client device may read the menu definition to display themenu to the consumer. FIG. 5 depicts a flowchart of a method ofproviding a menu for accessing online streaming media, according to oneor more embodiments. As shown in FIG. 5, at operation 505, the streamingmedia access device, such as client device 110 depicted in FIG. 1, mayload menu template from storage. At operations 510 through 555, thestreaming media access device may perform operations for each menu itemin the loaded menu template. For example, at operation 515, thestreaming media access device may determine if visibility criteria forthe menu item are met. For example, visibility criteria for a menu itemmay include whether a current data carrier associated with the streamingmedia access device matches a specified carrier, whether a user type,such as, for example, a registered user or an anonymous user, matches aspecified user type, and whether a device type, such as mobile, PC,tablet, set top box, etc., matches one of one or more specified devicetypes. Multiple visibility criteria may be specified, and the specifiedvisibility criteria may be combined using Boolean operators such as“and” and “or.” For example, visibility criteria may specify that thecurrent data carrier matches a specified carrier or that the user is aregistered user. If the visibility criteria for the menu item are notmet, the process may loop back to 510. If the visibility criteria forthe menu item are met, the process may continue with operations 520-555.At operation 520, the streaming media access device may determine if theitem type of the menu item is a generated item. If the item type of themenu item is a generated item then the process may continue withoperations 525-535. At operation 525, the streaming media access devicemay obtain menu items for a collection associated with the menu item. Atoperation 530, the streaming media access device may add the obtainedmenu items to the menu. At operation 535, the streaming media accessdevice may add a separator item after last obtained menu item. Atoperation 540, the streaming media access device may determine if theitem type of the menu item is a direct item. If the item type of themenu item is a direct item then the process may continue with operations545-550. At operation 545, the streaming media access device may add thedirect menu item to the menu. At operation 550, the streaming mediaaccess device may add one or more badges to menu item. At operation 555,the streaming media access device may determine if there are more menuitems. If there are more menu items then the process may loop back to510. If there are no more menu items, then at operation 560, thestreaming media access device may display the menu.

Displaying a menu for accessing electronic media assets, such as menu200 depicted in FIG. 2A, may include accessing a server associated witha content provider over a computer network. However, there may becircumstances in which the content provider server cannot be accessed orin which network communications are unavailable. In these circumstances,a menu may still be displayed, for example, by employing a “lowestcommon denominator” menu that displays a reduced set of availablecontent in order to reduce dependence on the content provider server orby employing a minimal menu that is predefined and locally stored. A“lowest common denominator” menu may be determined by setting userattributes related to menu visibility to values that reduce thevisibility of menu items. For example, a user type may be set to be ananonymous user and a carrier may be set to a carrier other than thecontent provider. However, other settings that reduce the visibility ofmenu items may be employed. Alternatively, a minimal menu may bedetermined by loading a predefined menu definition from local storage.Such a predefined menu definition may be a hard coded menu definitionthat is delivered with the content provider's software platform. Thepredefined menu definition may be updated periodically, such as everyhour, every number of hours, every day, etc., depending on theavailability of the content provider's servers and of networkconnectivity to the user's device, such as client device 110, depictedin FIG. 1. Electronic media assets referenced by the predefined menudefinition may be playable directly from local storage at the user'sdevice or from an accessible content provider server, such as contentserver 144, depicted in FIG. 1. FIG. 6 depicts a flowchart of a method600 of providing a “lowest common denominator” menu or a minimal menufor accessing online streaming media, according to one or moreembodiments.

As shown in FIG. 6, at operation 605, the user device may determinewhether network communication is available. If it is determined thatnetwork communication is available then the user device may continuewith operations 610-625. At operation 610, the user device may set auser type as “Anonymous.” At operation 615, the user device may set acarrier as a carrier other than the content provider. At operation 620,the user device may load menu definition over network. At operation 625,the user device may generate a menu from the loaded menu definitionaccording to the process disclosed in FIG. 5 using the set user type andcarrier. If it is determined that network communication is not availablethen the user device may continue with operations 630-635. At operation630, the user device may load a predefined menu definition from localstorage. At operation 635, the user device may generate a menu from theloaded menu definition according to the process disclosed in FIG. 5.

FIGS. 7A-7B depict exemplary user interfaces for retrieving anddisplaying electronic media assets, according to one or moreembodiments. FIG. 7A depicts a “lowest common denominator” menu foraccessing online streaming media, and a FIG. 7A depicts a minimal menufor accessing online streaming media. As shown in FIG. 7A, a “lowestcommon denominator” menu 700 may include content accessed from a contentprovider's network server, such as live streaming content 770. Such livestreaming content may include live events such as sports events. Contentaccessed from a network server may also include content that was updatedafter the most recent access to the content provider by the consumerdevice. However, a “lowest common denominator” menu may not includefeatures that make use of data obtained through the content provider.For example, a “lowest common denominator” menu may exclude personalizedcontent for a registered user, such as that depicted in FIG. 2B. Thus,control 235 may not indicate the availability of new content. Inaddition, the “lowest common denominator” menu may not include a list ofcontent that was recently watched or for which viewing may be resumed,or a list of content items that are recommended to the user. As shown inFIG. 7B, a minimal menu 710 may include only content accessed locallyfrom the device or from a content delivery network, such as from anetwork server such as content server 144 depicted in FIG. 1. Such amenu may not include content accessed from a content provider's networkserver, such as live streaming content. In addition, such a menu mayexclude personalized content for a registered user, such as thatdepicted in FIG. 2B.

FIG. 8 illustrates a high-level functional block diagram of an exemplarydevice 700, in which embodiments of the present disclosure, or portionsthereof, may be implemented, e.g., as computer-readable code. Forexample, each of the exemplary systems, user interfaces and methodsdescribed above with respect to FIGS. 1-7 can be implemented in device800 using hardware, software, firmware, tangible computer readable mediahaving instructions stored thereon, or a combination thereof and may beimplemented in one or more computer systems or other processing systems.Hardware, software, or any combination of such may implement each of theexemplary systems, user interfaces and methods described above withrespect to FIGS. 1-7.

If programmable logic is used, such logic may execute on a commerciallyavailable processing platform or a special purpose device. One ofordinary skill in the art may appreciate that embodiments of thedisclosed subject matter can be practiced with various computer systemconfigurations, including multi-core multiprocessor systems,minicomputers, mainframe computers, computer linked or clustered withdistributed functions, as well as pervasive or miniature computers thatmay be embedded into virtually any device.

For instance, at least one processor device and a memory may be used toimplement the above described embodiments. A processor device may be asingle processor, a plurality of processors, or combinations thereof.Processor devices may have one or more processor “cores.”

Various embodiments of the present disclosure, as described above in theexamples of FIGS. 1-7 may be implemented using device 800. After readingthis description, it will become apparent to a person skilled in therelevant art how to implement embodiments of the present disclosureusing other computer systems and/or computer architectures. Althoughoperations may be described as a sequential process, some of theoperations may in fact be performed in parallel, concurrently, and/or ina distributed environment, and with program code stored locally orremotely for access by single or multi-processor machines. In addition,in some embodiments the order of operations may be rearranged withoutdeparting from the spirit of the disclosed subject matter.

As shown in FIG. 8, device 800 may include a central processing unit(CPU) 820. CPU 820 may be any type of processor device including, forexample, any type of special purpose or a general purpose microprocessordevice. As will be appreciated by persons skilled in the relevant art,CPU 820 also may be a single processor in a multi-core/multiprocessorsystem, such system operating alone, or in a cluster of computingdevices operating in a cluster or server farm. CPU 820 may be connectedto a data communication infrastructure 810, for example, a bus, messagequeue, network, or multi-core message-passing scheme.

Device 800 may also include a main memory 840, for example, randomaccess memory (RAM), and may also include a secondary memory 830.Secondary memory 830, e.g., a read-only memory (ROM), may be, forexample, a hard disk drive or a removable storage drive. Such aremovable storage drive may comprise, for example, a floppy disk drive,a magnetic tape drive, an optical disk drive, a flash memory, or thelike. The removable storage drive in this example reads from and/orwrites to a removable storage unit in a well-known manner. The removablestorage unit may comprise a floppy disk, magnetic tape, optical disk,etc. which is read by and written to by the removable storage drive. Aswill be appreciated by persons skilled in the relevant art, such aremovable storage unit generally includes a computer usable storagemedium having stored therein computer software and/or data.

In alternative implementations, secondary memory 830 may include othersimilar means for allowing computer programs or other instructions to beloaded into device 800. Examples of such means may include a programcartridge and cartridge interface (such as that found in video gamedevices), a removable memory chip (such as an EPROM, or PROM) andassociated socket, and other removable storage units and interfaces,which allow software and data to be transferred from a removable storageunit to device 800.

Device 800 may also include a communications interface (“COM”) 860.Communications interface 860 allows software and data to be transferredbetween device 800 and external devices. Communications interface 860may include a modem, a network interface (such as an Ethernet card), acommunications port, a PCMCIA slot and card, or the like. Software anddata transferred via communications interface 860 may be in the form ofsignals, which may be electronic, electromagnetic, optical, or othersignals capable of being received by communications interface 860. Thesesignals may be provided to communications interface 860 via acommunications path of device 800, which may be implemented using, forexample, wire or cable, fiber optics, a phone line, a cellular phonelink, an RF link or other communications channels.

The hardware elements, operating systems and programming languages ofsuch equipment are conventional in nature, and it is presumed that thoseskilled in the art are adequately familiar therewith. Device 800 alsomay include input and output ports 850 to connect with input and outputdevices such as keyboards, mice, touchscreens, monitors, displays, etc.Of course, the various server functions may be implemented in adistributed fashion on a number of similar platforms, to distribute theprocessing load. Alternatively, the servers may be implemented byappropriate programming of one computer hardware platform.

Other embodiments of the disclosure will be apparent to those skilled inthe art from consideration of the specification and practice of theinvention disclosed herein. It is intended that the specification andexamples be considered as exemplary only, with a true scope and spiritof the invention being indicated by the following claims.

1-20. (canceled)
 21. A method of providing a menu for accessing onlinestreaming media, the method comprising: determining whether a server ofa content provider of a specific item of video or audio content isaccessible; upon determining that the server of the content provider isnot accessible: setting a user type of a user associated with astreaming media access device as an anonymous user not registered withthe content provider; and setting a current carrier as a carrier otherthan the current carrier for a device displaying the menu; for each menuitem among a plurality of menu items, determining if the user type ofthe user associated with the streaming media access device matches aspecified user type, the specified user type being one of a userregistered with the content provider of the specific item of video oraudio content or an anonymous user not registered with the contentprovider of the specific item of video or audio content; upondetermining that the user type of the user matches the specified usertype, displaying the menu item; and upon determining that the user typeof the user does not match the specified user type, excluding the menuitem from display.
 22. The method of claim 21, the method furthercomprising: for each menu item among the plurality of menu items,determining if visibility criteria for display of the menu item includedin the menu item are met, wherein the visibility criteria includes oneor more of whether a network data carrier associated with a streamingmedia access device matches a specified network data carrier, andwhether a client device type of the streaming media access devicematches a specified device type.
 23. The method of claim 22, wherein theclient device type is one of a mobile device, a personal computer, atablet, a set top box, or a gaming console.
 24. The method of claim 21,the method further comprising: for each menu item among the plurality ofmenu items, determining whether an item type for the menu item is agenerated item; and upon determining that the item type for the menuitem is a generated item: obtaining menu items for a collection of menuitems associated with the menu item from a server over a computernetwork, adding the collection of menu items to the menu, and adding aseparator item after last menu item.
 25. The method of claim 21, themethod further comprising: upon determining that the server of thecontent provider is accessible: adding personalized content to theplurality of menu items based on a user profile of a user registeredwith the content provider.
 26. The method of claim 22, wherein at leastone menu item among the plurality of menu items specifies multiplevisibility criteria combined using Boolean operators.
 27. A computersystem for providing a menu for accessing online streaming media, thesystem comprising: a memory having processor-readable instructionsstored therein; and a processor configured to access the memory andexecute the processor-readable instructions, which when executed by theprocessor configures the processor to perform a plurality of functions,including functions to: determine whether a server of a content providerof a specific item of video or audio content is accessible; upondetermining that the server of the content provider is not accessible:set a user type of a user associated with a streaming media accessdevice as an anonymous user not registered with the content provider;and set a current carrier as a carrier other than the current carrierfor a device displaying the menu; for each menu item among a pluralityof menu items, determine if the user type of the user associated withthe streaming media access device matches a specified user type, thespecified user type being one of a user registered with the contentprovider of the specific item of video or audio content or an anonymoususer not registered with the content provider of the specific item ofvideo or audio content; upon determining that the user type of the usermatches the specified user type, display the menu item; and upondetermining that the user type of the user does not match the specifieduser type, exclude the menu item from display.
 28. The computer systemof claim 27, wherein the plurality of functions performed by theprocessor when executing the processor-readable instructions furtherincludes functions to: for each menu item among the plurality of menuitems, determine if visibility criteria for display of the menu itemincluded in the menu item are met, wherein the visibility criteriaincludes one or more of whether a network data carrier associated with astreaming media access device matches a specified network data carrier,and whether a client device type of the streaming media access devicematches a specified device type.
 29. The computer system of claim 28,wherein the client device type is one of a mobile device, a personalcomputer, a tablet, a set top box, or a gaming console.
 30. The computersystem of claim 27, wherein the plurality of functions performed by theprocessor when executing the processor-readable instructions furtherincludes functions to: for each menu item among the plurality of menuitems, determine whether an item type for the menu item is a generateditem; and upon determining that the item type for the menu item is agenerated item: obtain menu items for a collection of menu itemsassociated with the menu item from a server over a computer network, addthe collection of menu items to the menu, and add a separator item afterlast menu item.
 31. The computer system of claim 27, wherein theplurality of functions performed by the processor when executing theprocessor-readable instructions further includes functions to: upondetermining that the server of the content provider is accessible: addpersonalized content to the plurality of menu items based on a userprofile of a user registered with the content provider.
 32. The computersystem of claim 28, wherein at least one menu item among the pluralityof menu items specifies multiple visibility criteria combined usingBoolean operators.
 33. A non-transitory machine-readable medium storinginstructions that, when executed by a computing system, causes thecomputing system to perform a method of providing a menu for accessingonline streaming media, the method comprising: determining whether aserver of a content provider of a specific item of video or audiocontent is accessible; upon determining that the server of the contentprovider is not accessible: setting a user type of a user associatedwith a streaming media access device as an anonymous user not registeredwith the content provider; and setting a current carrier as a carrierother than the current carrier for a device displaying the menu; foreach menu item among a plurality of menu items, determining if the usertype of the user associated with the streaming media access devicematches a specified user type, the specified user type being one of auser registered with the content provider of the specific item of videoor audio content or an anonymous user not registered with the contentprovider of the specific item of video or audio content; upondetermining that the user type of the user matches the specified usertype, displaying the menu item; and upon determining that the user typeof the user does not match the specified user type, excluding the menuitem from display.
 34. The non-transitory machine-readable medium ofclaim 33, the method further comprising: for each menu item among theplurality of menu items, determining if visibility criteria for displayof the menu item included in the menu item are met, wherein thevisibility criteria includes one or more of whether a network datacarrier associated with a streaming media access device matches aspecified network data carrier, and whether a client device type of thestreaming media access device matches a specified device type.
 35. Themethod of claim 34, wherein the client device type is one of a mobiledevice, a personal computer, a tablet, a set top box, or a gamingconsole.
 36. The non-transitory machine-readable medium of claim 33, themethod further comprising: for each menu item among the plurality ofmenu items, determining whether an item type for the menu item is agenerated item; and upon determining that the item type for the menuitem is a generated item: obtaining menu items for a collection of menuitems associated with the menu item from a server over a computernetwork, adding the collection of menu items to the menu, and adding aseparator item after last menu item.
 37. The non-transitorymachine-readable medium of claim 33, the method further comprising: upondetermining that the server of the content provider is accessible:adding personalized content to the plurality of menu items based on auser profile of a user registered with the content provider.
 38. Thenon-transitory machine-readable medium of claim 33, wherein at least onemenu item among the plurality of menu items specifies multiplevisibility criteria combined using Boolean operators.